#ifndef CARD_CPP
#define CARD_CPP

#include "card.h"

card::card () {
	clear ();
}

void card::clear () {
	// basic information

	name = "";

	color = NOCOLOR;

	category = NOCATEGORY;

	description = "";


	// data only for Action cards

	changeInTargetHP = 0;
	changeInUserHP = 0;

	changeInTargetMP = 0;
	changeInUserMP = 0;

	isElemental = false;
	isMultiElemental = false;

	isMelee = false;
	isRanged = false;
	isNonElemental = false;

	isDark = false;
	isLight = false;
	isIce = false;
	isFire = false;
	isWind = false;
	isWater = false;
	isEarth = false;
	isLightning = false;

	removeTargetPositiveEffects = false;
	removeTargetNegativeEffects = false;

	removeUserPositiveEffects = false;
	removeUserNegativeEffects = false;

	affectsAllOtherPlayers = false;

	discardTargetEntireHand = false;
	discardUserEntireHand = false;

	shuffleUserDeck = false;
	shuffleTargetDeck = false;

	blockAllOtherCards = false;

	redirectTargets = false;


	// data only for Status Effect cards

	positiveEffect = false;
	negativeEffect = false;
	otherEffect = false;

	defenseBasic = 0;
	defenseMelee = 0;
	defenseRanged = 0;
	defenseDark = 0;
	defenseLight = 0;
	defenseIce = 0;
	defenseFire = 0;
	defenseWater = 0;
	defenseEarth = 0;
	defenseLightning = 0;

	attackBasic = 0;
	attackMelee = 0;
	attackRanged = 0;
	attackDark = 0;
	attackLight = 0;
	attackIce = 0;
	attackFire = 0;
	attackWater = 0;
	attackEarth = 0;
	attackLightning = 0;

	changeInHPPerTurn = 0;
	changeInMPPerTurn = 0;

	retaliatoryDamage = 0;

	cardsFaceUp = false;

	holdSixCards = false;

	nullifyPositiveEffects = false;

	percentDamageTakenGainedInMP = 0.0;

	playTwoCardsPerTurn = false;


	// data for shared cards

	cardsToDiscard = 0;

	causesParalysis = false;

	discardToRemove = false;

	affectedByStatusEffects = true;


	// data for cards using a die roll

	requiresDieRoll = false;

	cardNameForDieRollOne = "";
	cardNameForDieRollTwo = "";
	cardNameForDieRollThree = "";
	cardNameForDieRollFour = "";
	cardNameForDieRollFive = "";
	cardNameForDieRollSix = "";
}

#endif
